package com.groupbuying.settleproducer.service;

import com.groupbuying.settleproducer.utils.apiresult.ApiResult;

import java.util.Map;

public interface SettleRefundService {
    /*参数初始化*/
    Map<String,Object> initRefundParams(String orderid);

    /*获取商户信息*/
    ApiResult getStoreInfo(Map<String,Object> params);

    /*校验退款信息*/
    ApiResult checkRefund(Map<String,Object> params);

    /*创建退款信息*/
    Map<String,Object> createRefund(Map<String,Object> params);

    /*分账退款*/
    ApiResult separateRefund(Map<String,Object> params);

    /*余额退款*/
    ApiResult balanceRefund(Map<String,Object> params);

    /*积分退款*/
    ApiResult integralRefund(Map<String,Object> params);

    /*流水信息落库*/
    ApiResult createFlowInfo(Map<String,Object> params);

    /*冻结商户金额*/
    ApiResult freezeOrUnFreezeVirtualMoney(Map<String,Object> params);

    /*发送mq消息通知商户中心修改商户余额*/
    void sendStoreMessage(Map<String,Object> params);

    /*拼装发送mq的参数*/
    Map<String,Object> initChangeStoreVirtualParams(Map<String,Object> params);

    /*发送mq消息通知订单中心修改订单状态*/
    void sendOrderMessage(Map<String,Object> params,String type);

    /*发送mq消息通知cheetah中心修改订单状态*/
    void sendCheetahMessage(Map<String,Object> params);

    /*发送mq消息通知currency中心修改用户积分*/
    void sendCurrencyMessage(Map<String,Object> params);
}
